Cambio de Receta vía HTTP con Node-RED
Este tutorial le muestra cómo cambiar recetas remotamente en su cámara OV80i usando solicitudes HTTP simples. Construirá un sistema que permite a cualquier dispositivo en su red cambiar entre diferentes configuraciones de inspección al instante, ideal para líneas de producción con múltiples productos.
Lo que Construirá: Un sistema de cambio remoto de recetas que responde a comandos HTTP desde tablets, computadoras, PLCs o cualquier dispositivo que pueda enviar solicitudes web.
Tiempo Estimado: 15-20 minutos
Nivel de Habilidad: Principiante
Ejemplo Real: Imagine a un operador escaneando un código de barras en su tablet, y la cámara cambia automáticamente a la receta correcta para ese producto; ¡eso es exactamente lo que construiremos!
Por Qué los Cambios de Receta vía HTTP Facilitan la Vida
El OV80i hace que el cambio remoto de recetas sea sencillo:
- Cualquier dispositivo puede activar – tablets, PLCs, computadoras, incluso smartphones
- Cambio instantáneo – las recetas cambian en menos de un segundo
- Sin configuraciones complejas – solo unos pocos nodos en Node-RED
- Funciona con sistemas existentes – se integra con lo que ya tiene
Perfecto para: Líneas multiproducto, paneles de control de operador, sistemas automatizados o donde necesite cambios rápidos de receta.
Prerrequisitos
Antes de comenzar, asegúrese de tener:
- Cámara OV80i conectada y funcionando
- Al menos 2 recetas creadas y listas para usar
- Acceso a Node-RED (a través de IO Block)
Un Punto Importante: Necesitará los números de ID de las recetas – estos se encuentran en la barra de direcciones de su navegador al editar recetas.
Paso 1: Encuentre Sus Números de Receta
1.1 Obtener IDs de Receta
- Abra cualquier receta en el Editor de Recetas
- Mire la barra de direcciones de su navegador
- Encuentre el número después de
/recipe/
(ejemplo:/recipe/15
significa que el ID de receta es 15) - Anote los IDs de todas las recetas entre las que desea cambiar
¿Por qué estos números? Cada receta tiene un ID único que nunca cambia; esto es lo que la cámara usa internamente.
Paso 2: Abra Node-RED
2.1 Acceda al Constructor de Flujos
- En cualquier Editor de Recetas, haga clic en "IO Block"
- Haga clic en "Configure IO"
¡Ahora está en Node-RED donde construiremos su sistema de cambio de recetas!
2.2 Planee Su Configuración
Esto es lo que construiremos:
Clic en Botón → Formatear Solicitud → Enviar a Cámara → Ver Resultado
¡Simple! La cámara tiene un servidor web integrado que escucha solicitudes de cambio de receta.
Paso 3: Construya Su Cambiador de Recetas
3.1 Añada los Nodos Básicos
Arrastre estos 4 nodos a su lienzo:
- Inject (de la sección Input) – Su botón para "cambiar receta"
- Function (de la sección Function) – Formatea la solicitud correctamente
- HTTP Request (de la sección Network) – Envía el comando a la cámara
- Debug (de la sección Output) – Muestra si funcionó
3.2 Conéctelos
Conéctelos así:
Inject → Function → HTTP Request → Debug
¡Fácil! Ahora configuremos cada uno.
Paso 4: Configure Sus Nodos
4.1 Configure Su Botón de Receta
- Haga doble clic en el nodo Inject
- Cambie el nombre a "Switch to Recipe 15" (use su ID de receta real)
- Establezca el Payload en "15" (su número de ID de receta)
- Haga clic en "Done"
4.2 Configure el Formateador de Solicitudes
- Haga doble clic en el nodo Function
- Nómbrelo "Format Request"
- Copie este código simple:
// Obtener número de receta desde el botón
let recipeID = msg.payload;
// Configurar la solicitud web
msg.headers = {'Content-Type': 'application/json'};
msg.payload = JSON.stringify({ id: recipeID });
return msg;
- Haga clic en "Done"
Qué hace esto: Toma su número de receta y lo empaqueta como la cámara espera.
4.3 Configure la Solicitud HTTP
- Haga doble clic en el nodo HTTP Request
- Establezca el Método a "POST"
- Establezca la URL a
localhost:5001/pipeline/activate
- Nómbrelo "Change Recipe"
- Haga clic en "Done"
Nota de versión:
- Antes de v18.92: use
http://[CAMERA_IP]/edge/pipeline/activate
- v18.92 y posteriores: use
http://localhost:5001/pipeline/activate
4.4 Configure el Monitor de Respuesta
- Haga doble clic en el nodo Debug
- Nómbrelo "Recipe Change Result"
- Haga clic en "Done"
¡Perfecto! Su cambiador de recetas está listo para probar.
Paso 5: Pruebe Su Cambiador de Recetas
5.1 Despliegue y Pruebe
- Haga clic en el botón rojo "Deploy"
- Haga clic en su botón inject (Switch to Recipe 15)
- Observe el panel debug para la respuesta
5.2 Verifique Si Funcionó
Señales de éxito:
- Debug muestra
"success": true
- La interfaz de la cámara muestra el nuevo nombre de receta
- No hay mensajes de error en el panel debug
Si funcionó: ¡Felicidades! Acaba de cambiar recetas remotamente.
Si no: Revise la sección de solución de problemas abajo.
5.3 Añada Más Botones de Receta
¿Quiere múltiples recetas? Solo agregue más nodos inject:
- Botón Receta 10: Payload = "10", Nombre = "Switch to Recipe 10"
- Botón Receta 23: Payload = "23", Nombre = "Switch to Recipe 23"
- Todos conectados al mismo nodo Function
Paso 6: Uso desde Otros Dispositivos
¡Ahora la parte divertida! Cualquier dispositivo puede cambiar recetas enviando solicitudes web a su cámara.
6.1 Desde Cualquier Navegador Web
Escriba esto en cualquier navegador de su red:
http://10.250.0.100:5001/pipeline/activate
(Reemplace con la dirección IP de su cámara)
6.2 Desde Línea de Comandos
Windows/Mac/Linux – cambiar a receta 15:
curl -X POST http://10.250.0.100:5001/pipeline/activate \
-H "Content-Type: application/json" \
-d '{"id": "15"}'
6.3 Desde PLCs y Otros Sistemas
La mayoría de sistemas modernos pueden enviar solicitudes HTTP:
- PLCs Siemens: Use bloques cliente HTTP
- Allen-Bradley: Use bloques de instrucción HTTP
- Python/C#/Java: Use librerías HTTP estándar
- Apps personalizadas: Cualquier lenguaje de programación funciona
El formato de la solicitud siempre es el mismo:
- Método: POST
- URL:
http://[CAMERA_IP]:5001/pipeline/activate
- Cuerpo:
{"id": "RECIPE_NUMBER"}
Paso 7: Mejórelo Aún Más
7.1 Añada Validación de Recetas
¿Quiere evitar cambiar a recetas inexistentes? Modifique su función:
let recipeID = msg.payload;
let validRecipes = ["10", "15", "20"]; // Sus IDs reales de receta
if (!validRecipes.includes(recipeID)) {
msg.payload = "Receta inválida: " + recipeID;
return null; // No enviar solicitud
}
// Continúa el formateo normal...
7.2 Mapeo de Códigos de Producto
¿Quiere usar nombres de producto en lugar de números? Pruebe esto:
let productCodes = {
"BOLT_A": "10",
"BOLT_B": "15",
"SCREW_C": "20"
};
let recipeID = productCodes[msg.payload];
// Continúe con el formateo...
¡Ahora puede activar con nombres de producto en lugar de números!
7.3 Procesamiento de Respuesta
¿Quiere mejores mensajes de éxito/error? Añada otra función después de HTTP Request:
let response = JSON.parse(msg.payload);
if (response.success) {
msg.payload = "✓ ¡Receta cambiada con éxito!";
} else {
msg.payload = "✗ Falló el cambio de receta: " + response.error;
}
return msg;
Paso 8: Solución Rápida de Problemas
¿No funciona? Aquí las soluciones más comunes:
Problema | Solución Rápida |
---|---|
Error "Recipe not found" | Verifique dos veces el número de ID de receta en la URL |
No hay respuesta | Verifique la dirección IP de la cámara y la conexión de red |
Mensaje "Parse error" | Asegúrese que el código del nodo Function esté copiado correctamente |
La receta no cambia realmente | Confirme que la receta existe y no está corrupta |
¿Sigue sin funcionar? Verifique que su cámara esté en línea y accesible desde Node-RED.
¡Lo Logró!
¡Felicidades! Ahora tiene control remoto de recetas en su cámara OV80i. Con solo unos clics, construyó un sistema que puede:
- Cambiar recetas instantáneamente desde cualquier dispositivo en su red
- Integrarse con sistemas existentes como PLCs, tablets o computadoras
- Soportar múltiples recetas con simples clics de botón
- Validar solicitudes para evitar errores
- Trabajar con aplicaciones personalizadas usando tecnología web estándar
¿Qué Sigue?
Ahora que tiene lo básico funcionando, puede:
Próximos Pasos Fáciles
- Agregar más botones de receta para todos sus productos
- Probar desde diferentes dispositivos como tablets o teléfonos
- Crear mapeos personalizados de productos para operación más sencilla
Ideas Avanzadas
- Construir dashboards para operadores con botones de selección de receta
- Conectar con escáneres de código de barras para selección automática de receta
- Integrar con sistemas MES para coordinación en línea de producción
- Agregar registros (logging) para rastrear qué recetas se usan y cuándo
Ejemplos del Mundo Real
Así usan otros el cambio de receta vía HTTP:
- Empaque de alimentos: Escáner de código de barras activa cambio de receta para diferentes tamaños de paquete
- Automotriz: PLC cambia recetas según tipo de pieza en la línea
- Electrónica: Tablet de operador con botones para diferentes placas de circuito
- Control de Calidad: Cambio automático de receta basado en el programa de producción
Las posibilidades son infinitas – y todo comienza con el sistema simple que acaba de construir.
Documentación Relacionada
- Tutorial: Activación vía MQTT
- Cómo Hacer: Configuración de Comunicación MQTT
- Cómo Hacer: Configuración de Comunicación TCP
- Tutorial: Integración Completa con PLC
- Referencia: Guía de Bloques Lógicos Node-RED